package co.baiku.boot.request;

import java.util.HashMap;
import java.util.Map;

/**
 * 企业付款参数
 */
public class WeixinCompanyPayRequest implements WeixinPayRequest {
    /**
     * 申请商户号的appid或商户号绑定的appid(公众号appid)
     */
    private String mch_appid;
    /**
     * 商户订单号，需保持唯一性(只能是字母或者数字，不能包含有符号)
     */
    private String partner_trade_no;
    /**
     * 商户appid下，某用户的openid
     */
    private String openid;
    /**
     * 校验用户姓名选项 NO_CHECK：不校验真实姓名 FORCE_CHECK：强校验真实姓名
     */
    private String check_name;
    /**
     * 收款用户真实姓名。如果check_name设置为FORCE_CHECK，则必填用户真实姓名
     */
    private String re_user_name;
    /**
     * 企业付款金额，单位为分
     */
    private Integer amount;
    /**
     * 企业付款操作说明信息。必填。
     */
    private String desc;
    /**
     * 该IP同在商户平台设置的IP白名单中的IP没有关联，该IP可传用户端或者服务端的IP。
     */
    private String spbill_create_ip;


    public String getPartner_trade_no() {
        return partner_trade_no;
    }

    public void setPartner_trade_no(String partner_trade_no) {
        this.partner_trade_no = partner_trade_no;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getCheck_name() {
        return check_name;
    }

    public void setCheck_name(String check_name) {
        this.check_name = check_name;
    }

    public String getRe_user_name() {
        return re_user_name;
    }

    public void setRe_user_name(String re_user_name) {
        this.re_user_name = re_user_name;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getSpbill_create_ip() {
        return spbill_create_ip;
    }

    public void setSpbill_create_ip(String spbill_create_ip) {
        this.spbill_create_ip = spbill_create_ip;
    }

    public String getMch_appid() {
        return mch_appid;
    }

    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }

    @Override
    public Map<String, String> toMap() {
        Map<String, String> data = new HashMap<>();
        data.put("partner_trade_no", partner_trade_no);
        data.put("mch_appid", mch_appid);
        data.put("openid", openid);
        if (check_name == null) {
            data.put("check_name", "NO_CHECK");
        } else {
            data.put("re_user_name", re_user_name);
        }
        data.put("amount", amount + "");
        data.put("desc", desc);
        data.put("spbill_create_ip", spbill_create_ip);
        return data;
    }
}
